#pragma once

#include "GameObject.h"

typedef std::shared_ptr<TCODMap> TCODMapPtr;

class Player;
typedef std::shared_ptr<Player> PlayerPtr;

class Player : public GameObject
{
public:
	Player(const Vec2i &viewport_size);
	virtual ~Player();

	void init();
	void update() override;
	void render() override;

	const TCODMapPtr &getFOV() const { return fov; }

	const Vec2i &getLowerBounds() const { return lower_bounds; }
	const Vec2i &getUpperBounds() const { return upper_bounds; }

private:
	Vec2i viewport_size;
	TCODMapPtr fov;
	Vec2i lower_bounds;
	Vec2i upper_bounds;
};


